Automated testing in software is the use of special software, apart from that being tested, that controls the execution of a predefined set of test steps and compares the actual outcomes of those steps with predicted outcomes. Traditional automated testing tools capture snapshots of the complete graphical user interface (GUI) following each automated test step in order to render a pictorial representation of the progression of the GUI through the test sequence.
Automated testing of graphical user interfaces relies on a set of detailed instructions which simulate a series of interactions between a user and the application under test. The instructions include events such as mouse movements, mouse clicks, focus change events, and keyboard strokes. Additional events are possible on devices, such as cell phones or tablet computers, which include multi-touch displays. Each event has a pre-event and a post-event, which can be detected by application code tools known as listeners. Listeners are small programs that are triggered when specific events take place.